// Logistics/DriverUpload/DriverUpload.js
/*
* {
单元名称：司机节点上传js
单元功能：司机扫码运单上传当前节点操作
所属模块功能：
创建人：yan
创建时间：230825
修改人：
修改时间：
}
* */
Page({

  /**
   * 页面的初始数据
   */
  data: {
    waybill: {},
    field: [
      {field_id: 'time',label: '当前时间',isDisabled: true,type: 'text'},
      {field_id: 'node',label: '节点选择',type: 'picklist',option: [
          {name: '接单'},
          {name: '派车'},
          {name: '装货'},
          {name: '发运'},
          {name: '运输中',},
          {name: '到达分拨中心'},
          {name: '分拨中心送货'},
        ],optionId: 'name',optionName: 'name',is_null: false},
    ],

    defData: {},
    inputData: {},

    validFlag: false,             // 验证标识
    validObj: {},                 // 验证表单项

  },
  components: {

  },
  // 记录验证表单项
  validIpt(e) {

    let { validObj, } = this.data
    this.data.validObj = {
      ...validObj,
      ...e.detail,
    };
  },
  //验证数据
  validForm(validObj){
    return new Promise((resolve, reject) => {
      let valid = Object.values(validObj).includes(false) ? false : true;
      resolve(valid)
    })
  },

  bindChange(e){
    let detail = e.detail,
      field = detail.field,
      id = field.field_id || field.fieldName,
      type = field.type,
      val = detail.val,
      val2 = '',
      obj = this.data.inputData;

    if (type === 'num' || type === 'currency' || type === 'percent'){
      val = val ? val : null
    }

    //赋值
    this.data.inputData[id] = val;
    this.data.defData[id] = val;

  },

  //微信扫一扫
  wxScanCode(){
    wx.scanCode({
      success: (res) => {
        if (res.errMsg == "scanCode:ok") {
          console.log("扫码结果");
          console.log(res);
          this.setData({
            waybill: {
              order_status: '已发货',
              order_no: res.result,
              order_time: '2023-05-11',
              section: '南庄-福州',
              name: '广告品',
              num: '5',
              pack: '纸箱',
              car_num: '鸿景提供运力'
            }
          });

        //  判断订单状态
          let opt = [

            {name: '发运'},
            {name: '到达分拨中心'},
            {name: '分拨中心送货'},
          ];
          this.setData({
            field: [
              {field_id: 'time',label: '当前时间',isDisabled: true,type: 'text'},
              {field_id: 'node',label: '节点选择',type: 'picklist',option: opt,optionId: 'name',optionName: 'name',is_null: false},
            ]
          })
        }
      },
      fail: (res) => {
        console.log(res);
        wx.$toast('扫码失败')
      }
    })
  },

  //保存
  bindSave(e){
    // 开启验证
    this.data.validObj = {}
    this.setData({
      validFlag: !this.data.validFlag,
    });

    let type = e.currentTarget.dataset.type,
      formObj = this.data.inputData,
      validObj = this.data.validObj;
    this.validForm(validObj).then(valid => {
      if(valid) { // 表单验证通过
        console.log('表单验证通过', formObj);
        wx.$toast('上传成功！')

      } else {  // 表单验证不通过
        console.log('表单验证不通过')
        wx.$toast('必填项不能为空！')
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log(wx.$util.formatDate(new Date(), 'yyyy-MM-dd HH:mm'));
    this.setData({
      [`defData.time`]: wx.$util.formatDate(new Date(),'yyyy-MM-dd HH:mm')
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})
